This invention relates to a system and method for synchronizing data in a subset database with a distributed database system.
In recent years, small electronic devices with reasonable amounts of memory, faster processing power, and extendible operating systems have become extremely popular as well as affordable. These electronic devices are popular for situations when a personal computer or even a notebook computer is to not convenient. Such electronic devices may operate electronic calendar programs, electronic personal organizer programs, user application programs, and other programs that may also be operable on larger computer systems. Such electronic devices may have databases for storing information for use by such programs, including calendar information, contact information, lists of tasks to be performed, files, data, pictures, bitmaps, and other information that may be stored in a database.
Many users of these electronic devices use a personal computer, notebook computer or networked computer as well. Some users may use an electronic device, a notebook computer, and a networked personal computer, each for different tasks or situations. Accordingly, these users may desire to have some information stored in each computer system. For example, a user may desire to store a copy of a contact information database, a company directory database, or a database of program files on the electronic device and another computer system as well, such as, for example, a notebook computer, stand-alone personal computer, or a networked computer system.
As chances are made to one database, it may be desired that the same changes be reflected in the other databases as well. For example, if new personnel are added or existing contact information is changed in a distributed database company directory, the user may desire to have those same changes reflected in the company directory database stored in the user""s electronic device. Similarly, if the user adds contact information into the contact database stored on the user""s electronic device, the user may desire to have that information added to the contact database stored on a distributed database system.
Some current electronic devices and computer systems permit users to perform a two-way batch transfer of data between a single source database on a computer system and the electronic device database. These systems suffer from various drawbacks.
Such systems do not enable a user to transfer data with distributed database systems. Distributed database systems such as the distributed database system licensed by Lotus Development Corporation under the trade name Lotus Notes(trademark), for example, provide a system that distributes multiple copies of databases through a networked system to enable more efficient and faster access to information contained in the databases. These systems provide for replication of information between the various copies of the database. Current electronic devices are not capable of properly synchronizing with a distributed database system.
Further, memory constraints on these electronic devices often prevent copies of large databases. Distributed databases as well as some other databases may exceed the storage capacity of an electronic device.
Other drawbacks also exist with current systems.
Accordingly, it is an object of the present invention to overcome these and other drawbacks of current systems.
It is an object of the present invention to facilitate use of electronic devices with distributed database systems.
It is another object of the present invention to enable a user to store data on multiple databases and allow the user to synchronize the data across those multiple databases.
It is an object of the present invention to provide a system and method for allowing a user to store information from a distributed database system on a portable electronic device and synchronize that information periodically.
It is an object of the present invention to provide a system and method for storing a subset of a database on a electronic device and enabling data stored in that subset to be synchronized with the data contained in the database.
It is an other object of the present invention to provide a system and method for synchronizing data between a subset database and a distributed database system.
According to these and other objects of the present invention, a system, method, and computer readable medium containing instructions for causing a computer to synchronize data from a subset database with a distributed database is provided. The system may comprise one or more source systems and one or more secondary systems. According to one embodiment, the secondary system may comprise a portable electronic device or another device that has limited memory relative to the source system.
The source system may comprise a notebook computer, personal computer or network computers, for example, and may access one or more source databases from a distributed database system. The secondary system may access a secondary database which is a subset of one or more of the databases from the distributed database system. To synchronize data between the secondary database and one of the source databases, the source system may store a mapping identification table that identifies correspondence between records in the distributed database and records in the subset database. According to one embodiment, the mapping identification table may contain one-to-one correspondence between every record in the subset database and a record from the distributed database. The secondary system may also store a delta table which may contain information about modifications to the secondary database. Further, for systems in which the distributed database comprises a source database and one or more replica databases, the secondary source may store a replica identification table that contains information regarding which replica of the source database is most up to date. This information may be used during synchronization to ensure that updates are made to the most up-to-date version of the database before they are changed. This information may be used to ensure accurate synchronization of data between the secondary database and the source database.
According to another embodiment of the present invention, a system, method, and computer readable medium containing computer readable instructions for causing a computer to synchronize a secondary database system, such as one stored on a palmtop electronic device, with a distributed database system. The distributed database system comprises a main database and at least one replica database. The system further comprises a modification database that contains entries for modifications that have been made to the secondary database since a previous synchronization between the secondary database and the distributed database system and a synchronization module that synchronizes the secondary database with one of the databases of the distributed database system using the modification database. Each database in the distributed database system stores an identification mapping database having an assigned version number. The system further comprises a replica identification database associated with the secondary database that contains an entry for each source database of the distributed database system, each entry comprising information regarding the last synchronization between the secondary database and the source database including the version of the identification mapping database associated with the source database when the synchronization occurred. A pruning module is provided for pruning entries from the modification database using the replication identification database.
Other advantages of the present invention will be apparent from reviewing the detailed description and drawings of the present invention set forth herein.